home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
UUPC11QS.ARJ
/
MAKEFILE
< prev
next >
Wrap
Text File
|
1991-12-08
|
19KB
|
747 lines
# Program: MAKEFILE 15 May 1989
# Author: Andrew H. Derbyshire
# P.O. Box 132
# Arlington, MA 02174
# Function: Build UUPC/extended from source files
# Processor: Borland MAKE version 3.5
# External files: MASM or TASM (8088 Assembler)
# BCC (Borland C++ 2.0 compiler)
# LINK or TLINK (MS-DOS Linker)
# TDSTRIP (Turbo debugger utility).
# MOVE.COM (Rename files between directories)
# FMT.EXE (Performs wordwrap of long lines)
# Input source files.
#
# The following are needed for the documentation only:
# SCR.EXE (SCRIMPT document composition utility)
#
# Note: SCRIMPT is not generally available. If you want to build
# the formatted documents, you have to translate them into
# a word processor you have access to. This makes it
# difficult to build the user .ZIP file, which is just as well.
#
# Note: If you don't have Turbo Debugger, you can modify the
# BCC options to not generate debugging information
# and then just copy the modules to the production
# directory. See CCOPT, below.
#
# Note: MOVE can be created by putting a COPY followed by a ERASE
# in a MOVE.BAT file. This is slower than a true move
# program (which just renames between directories), but
# life is hard.
.SILENT
.AUTODEPEND
# .PATH.obj = OBJ
.PATH.scr = DOC
# *Translator Definitions*
CC = bcc +UUPC.CFG
TASM = TASM
TLINK = tlink
# *Implicit Rules*
.c.obj:
$(CC) -c $(CCX) -n$: -I$: {$< }
.asm.obj:
$(TASM) $(TASMOPT) /w1 $<,$:$&;
.obj.com:
$(CC) -mt -lt -v- $(CCX) $< $(TIMESTMP)
# Our release number. This is updated each time we ship it out to
# some unsuspecting user, or sometimes when we do a major fix even
# if we don't ship it out to the lusers. ANY VERSION NOT DONE ON
# kendra SHOULD BE TAGGED AS N.NNAm, WHERE N.NNA IS THE NUMBER
# UUPC was shipped as, and 'm' any string to indentify your special
# version. Just upping the distributed version number will confuse
# you AND me.
VERS = 1.11q
# The memory model to be built.
!if !$d(MODEL)
MODEL = s
!endif
# Hard Drive letter, and directories on the hard drive to be used.
# The link files are also affected by this parameter.
!if !$d(TMP)
TMP = \tmp
!endif
SRC = .
OBJ = obj
UUCICO = uucico
MAIL = mail
LIB = lib
DOC = doc
UTIL = util
WINWORD = winword
!if !$d(PROD)
PROD = \lib\uupc\bin
!endif
FMT = $(PROD)\fmt.com
!if !$d(BORLANDC)
BORLANDC = \borlandc
!endif
BLIB = $(BORLANDC)\lib
# The names of various object files that we create.
TIMESTMP = $(LIB)\timestmp.obj
LIBLIST = $(LIB)\arbmath.obj $(LIB)\arpadate.obj $(LIB)\bugout.obj\
$(LIB)\chdir.obj $(LIB)\checkptr.obj $(LIB)\configur.obj\
$(LIB)\creat.obj $(LIB)\dater.obj $(LIB)\expath.obj\
$(LIB)\export.obj $(LIB)\fopen.obj $(LIB)\getargs.obj\
$(LIB)\getopt.obj $(LIB)\getseq.obj $(LIB)\hostable.obj\
$(LIB)\hostatus.obj $(LIB)\import.obj $(LIB)\kanjicnv.obj\
$(LIB)\mkdir.obj $(LIB)\mkfilenm.obj $(LIB)\mkmbox.obj\
$(LIB)\mktempnm.obj $(LIB)\ndir.obj $(LIB)\printerr.obj\
$(LIB)\printmsg.obj $(LIB)\pushpop.obj $(LIB)\readnext.obj\
$(LIB)\rename.obj $(LIB)\ssleep.obj $(LIB)\stater.obj\
$(LIB)\usertabl.obj $(TIMESTMP)
LIBLST1=+$(LIB)\arbmath.obj +$(LIB)\arpadate.obj +$(LIB)\bugout.obj\
+$(LIB)\chdir.obj +$(LIB)\checkptr.obj +$(LIB)\configur.obj\
+$(LIB)\creat.obj +$(LIB)\dater.obj +$(LIB)\expath.obj\
+$(LIB)\export.obj +$(LIB)\fopen.obj +$(LIB)\getargs.obj
LIBLST2=+$(LIB)\getopt.obj +$(LIB)\getseq.obj +$(LIB)\hostable.obj\
+$(LIB)\hostatus.obj +$(LIB)\import.obj +$(LIB)\kanjicnv.obj\
+$(LIB)\mkdir.obj +$(LIB)\mkfilenm.obj +$(LIB)\mkmbox.obj\
+$(LIB)\mktempnm.obj +$(LIB)\ndir.obj +$(LIB)\printerr.obj
LIBLST3=+$(LIB)\printmsg.obj +$(LIB)\pushpop.obj +$(LIB)\readnext.obj\
+$(LIB)\rename.obj +$(LIB)\ssleep.obj +$(LIB)\stater.obj\
+$(LIB)\usertabl.obj +$(TIMESTMP)
MAILOBJ = $(MAIL)\alias.obj $(MAIL)\mail.obj $(MAIL)\mailblib.obj\
$(MAIL)\maillib.obj $(MAIL)\mailsend.obj $(MAIL)\mlib.obj\
$(MAIL)\address.obj
RMAILOBJ = $(MAIL)\deliver.obj $(MAIL)\rmail.obj $(MAIL)\address.obj
RNEWSOBJ = $(UTIL)\rnews.obj
UUCPOBJ = $(UTIL)\uucp.obj
UUSTATOBJ = $(UTIL)\uustat.obj
UUCICOCOM = $(UUCICO)\checktim.obj $(UUCICO)\dcp.obj $(UUCICO)\dcpfpkt.obj\
$(UUCICO)\dcpgpkt.obj $(UUCICO)\dcplib.obj $(UUCICO)\dcpsys.obj\
$(UUCICO)\dcpxfer.obj $(UUCICO)\dcpstats.obj $(UUCICO)\modem.obj\
$(UUCICO)\nbstime.obj $(UUCICO)\security.obj $(UUCICO)\script.obj\
$(UUCICO)\ulib.obj $(UUCICO)\uucico.obj
UUCICOOBJ = $(UUCICO)\comm.obj $(UUCICOCOM)
UUCICOOBJF = $(UUCICO)\commfifo.obj $(UUCICOCOM)
UUSUBOBJ = $(UTIL)\uusub.obj
UUPOLLOBJ = $(UTIL)\uupoll.obj
UUXQTOBJ = $(UUCICO)\uuxqt.obj $(UUCICO)\security.obj
UUXOBJ = $(UTIL)\uux.obj
WORKFILE = $(TMP)\UUPCTEMP.TMP
# Final locations of various targets
BUGSDOC = $(WINWORD)\bugs.doc
CHNGDOC = $(WINWORD)\changes.doc
CMDSDOC = $(WINWORD)\commands.doc
HOW2DOC = $(WINWORD)\howtoget.doc
INSTDOC = $(WINWORD)\install.doc
MAILDOC = $(WINWORD)\mail.doc
READDOC = $(WINWORD)\readme.doc
REGRDOC = $(WINWORD)\register.doc
STATDOC = $(WINWORD)\uustat.doc
TILDDOC = $(WINWORD)\tilde.doc
DOCW = $(BUGSDOC) $(CHNGDOC) $(CMDSDOC) $(HOW2DOC) $(INSTDOC) \
$(MAILDOC) $(READDOC) $(REGRDOC) $(STATDOC) $(TILDDOC)
BUGSLST = $(WINWORD)\bugs.prn
CHNGLST = $(WINWORD)\changes.prn
CMDSLST = $(WINWORD)\commands.prn
INSTLST = $(WINWORD)\install.prn
HOW2LST = $(WINWORD)\howtoget.prn
MAILLST = $(WINWORD)\mail.prn
READLST = $(WINWORD)\readme.prn
REGRLST = $(WINWORD)\register.prn
STATLST = $(WINWORD)\uustat.prn
TILDLST = $(WINWORD)\tilde.prn
DOCL = $(BUGSLST) $(CHNGLST) $(CMDSLST) $(HOW2LST) $(INSTLST) \
$(MAILLST) $(READLST) $(REGRLST) $(STATLST) $(TILDLST)
FILELST = $(DOC)\files.lst
DOCX = $(FILELST)
DOCS = $(DOCL) $(DOCX)
EXEC = mail.exe uucico.exe uupoll.com
REQUIRED= $(PROD)\mail.exe $(PROD)\rmail.com $(PROD)\uucico.exe\
$(PROD)\uucicof.exe\
$(PROD)\uuxqt.exe
OPTIONAL= $(PROD)\rnews.com $(PROD)\uucp.com $(PROD)\uupoll.com\
$(PROD)\uustat.com $(PROD)\uusub.com $(PROD)\uux.com\
$(FMT) $(PROD)\gensig.com $(PROD)\novrstrk.com
INSTALL = $(REQUIRED) $(OPTIONAL)
SAMPLEC = $(DOC)\systems $(DOC)\passwd $(DOC)\hostpath
SAMPLER = $(DOC)\personal.rc $(DOC)\uupc.rc
SAMPLEP = $(DOC)\personal.sig $(DOC)\aliases.txt $(DOC)\su.bat $(DOC)\uuio.bat
SAMPLEW = $(DOC)\mail.ico $(DOC)\uucico.ico $(DOC)\up-pif.dvp
SAMPLES = $(SAMPLEC) $(SAMPLER) $(SAMPLEP)
SAMPLEX = systems passwd hostpath *.rc *.mdm personal.sig aliases.txt *.bat *.ico
MAKEFILE = $(SRC)\makefile
SRCZIPV = $(SRC)\$(VERS)\uupcsrc.zip
STARTUP = $(BLIB)\c0$(MODEL)
STARTUPT = $(BLIB)\c0t
LIBRARY1 = $(BLIB)\c$(MODEL).LIB
LIBRARY2 = $(LIB)\c$(MODEL)LIB.LIB
LIBRARIES= $(LIBRARY1) $(LIBRARY2)
LIBRARY = $(LIBRARY1)+$(LIBRARY2)
REQZIPV = $(SRC)\$(VERS)\uupcreq.zip
OPTZIPV = $(SRC)\$(VERS)\uupcopt.zip
DOCZIPV = $(SRC)\$(VERS)\uupcdoc.zip
WINZIPV = $(SRC)\$(VERS)\uupcwin.zip
# Various Program names and their options
LINKER = tlink
LINKOPT = /c /v /l /m /s
LINKOPTT = /c /m /s /t
TASM = tasm.exe
TASMOPT = /mx /zi /w3
ZIP = pkzip
# Scrimpt options
SCROPT = +uupcv=$(VERS)
SDEVLST = dummy
# *--------------------------------------------------------------------*
# * Begin rules for building modules. *
# * *
# * The first definition is the one built by default. *
# *--------------------------------------------------------------------*
# *--------------------------------------------------------------------*
# * test builds the basic UUPC modules in the source directory. *
# *--------------------------------------------------------------------*
test: mail.exe uucico.exe rmail.exe uuxqt.exe uucp.exe uupoll.exe\
uux.exe uustat.exe uusub.exe
testcom: mail.exe uucico.exe rmail.com uuxqt.exe uucp.com uupoll.com\
uux.com uustat.com uusub.com
# *--------------------------------------------------------------------*
# * Prod build the basic modules and then moves them to $(PROD) *
# *--------------------------------------------------------------------*
prod: regen $(INSTALL)
- erase $(TIMESTMP)
bin: $(INSTALL)
required: $(REQUIRED)
# *--------------------------------------------------------------------*
# * Install builds the UUPC modules, installs the executables *
# * in the production directory, formats the documentation files, *
# * and creates PKZIP files for giving away. *
# *--------------------------------------------------------------------*
install: $(REQZIPV) $(OPTZIPV) $(SRCZIPV) $(DOCZIPV) $(WINZIPV) $(INSTALL) regen
- erase $(WORKFILE)
@echo Installed UUPC and created ZIP files $(REQZIPV), $(OPTZIPV),
@echo $(SRCZIPV), $(DOCZIPV), and $(WINZIPV)
- erase $(TIMESTMP)
# *--------------------------------------------------------------------*
# * Build just the source .ZIP file. *
# *--------------------------------------------------------------------*
szip: $(SRCZIPV)
wzip: $(WINZIPV)
dzip: $(DOCZIPV)
# Build both user (executable) and source .ZIP files
zip: $(SRCZIPV) $(WINZIPV) $(REQZIPV) $(OPTZIPV) $(DOCZIPV)
@echo Done creating $(SRCZIPV), $(WINZIPV),
@echo $(REQZIPV), $(OPTZIPV), $(DOCZIPV)
# Short names for various modules.
mail: mail.exe
rmail: rmail.exe
uucp: uucp.exe
uuxqt: uuxqt.exe
uusub: uusub.exe
rnews: rnews.exe
uupoll: uupoll.exe
uustat: uustat.exe
uucico: uucico.exe
uux: uux.exe
# Do a purge of various temporary output files.
clean: xclean
- erase $(DOC)\*.bak
- erase $(FILELST)
- erase $(SRC)\*.bak
- erase $(WORKFILE)
- erase *.map
# Do a clean of just executable files and related files.
xclean:
- erase *.o
- erase *.obj
- erase *.exe
- erase $(OBJ)\*.o
- erase $(OBJ)\*.obj
- erase $(MAIL)\*.obj
- erase $(UUCICO)\*.obj
- erase $(LIB)\*.obj
- erase $(UTIL)\*.obj
- erase $(OBJ)\*.exe
- erase $(OBJ)\*.com
- erase $(OBJ)\*.tds
- erase $(LIB)\*.lib
# The production copies of executables follow.
$(PROD)\mail.exe: mail.exe
- erase $<
move $. $<
- erase $&.tds
$(PROD)\rmail.com: rmail.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uucp.com: uucp.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uusub.com: uusub.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uuxqt.exe: uuxqt.exe
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uustat.com: uustat.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uux.com: uux.com
- erase $<
move $. $<
- erase $&.tds
$(FMT): fmt.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\gensig.com: gensig.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\novrstrk.com: novrstrk.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uucico.exe: uucico.exe
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uucicof.exe: uucicof.exe
- erase $<
move $. $<
- erase $&.tds
$(PROD)\uupoll.com: uupoll.com
- erase $<
move $. $<
- erase $&.tds
$(PROD)\rnews.com: rnews.com
- erase $<
move $. $<
- erase $&.tds
# The main copies of the .ZIP files.
$(SRCZIPV): $(MAKEFILE) $(SRC)\nmake $(TIMESTMP) $(FMT)
- mkdir $:.
$(FMT) -0 &&!
*.c *.h *.asm $(MAKEFILE) nmake
! $(WORKFILE)
-12 $(ZIP) -o- -p -r -u -z $< @$(WORKFILE)<<!
Kendra Electronic Wonderworks: UUPC/extended $(VERS) source files
!
$(WINZIPV): $(DOCW) $(DOC)\files.scr
- mkdir $:.
$(FMT) -0 &&!
$(DOCW)
$(DOC)\*.scr
\winword\manual.dot
! $(WORKFILE)
-12 $(ZIP) -o- -u -z $< @$(WORKFILE) <<!
Kendra Electronic Wonderworks: UUPC/extended $(VERS) Unformatted Documents
!
$(REQZIPV): $(REQUIRED) $(FMT)
- mkdir $:.
$(FMT) -0 &&!
$(REQUIRED)
! $(WORKFILE)
-12 $(ZIP) -o- -p -u -z $< @$(WORKFILE) <<!
Kendra Electronic Wonderworks: UUPC/extended $(VERS) required MS-DOS executables
!
$(OPTZIPV): $(OPTIONAL) $(FMT)
- mkdir $:.
$(FMT) -0 &&!
$(OPTIONAL)
! $(WORKFILE)
-12 $(ZIP) -o- -p -u -z $< @$(WORKFILE) <<!
Kendra Electronic Wonderworks: UUPC/extended $(VERS) optional MS-DOS executables
!
$(DOCZIPV): uupc.cfg $(SAMPLES) $(DOCS) $(FMT)
- mkdir $:.
$(FMT) -0 &&!
$(DOCS)
$(SAMPLES)
$(DOC)\*.mdm
$(DOC)\*.inf
! $(WORKFILE)
-12 $(ZIP) -o- -p -u -z $< @$(WORKFILE) <<!
Kendra Electronic Wonderworks: UUPC/extended $(VERS) documention and sample files
!
mail.exe: uupc.cfg $(MAILOBJ) $(LIBRARIES)
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(MAILOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
rmail.com: uupc.cfg $(RMAILOBJ) $(LIBRARIES)
- erase rmail.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(RMAILOBJ)
$<
nul
$(LIBRARY)
|
rmail.exe: uupc.cfg $(RMAILOBJ) $(LIBRARIES)
- erase rmail.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(RMAILOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uucp.com: uupc.cfg $(UUCPOBJ) $(LIBRARIES)
- erase uucp.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(UUCPOBJ)
$<
nul
$(LIBRARY)
|
uucp.exe: uupc.cfg $(UUCPOBJ) $(LIBRARIES)
- erase uucp.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUCPOBJ)
$<
nul
$(LIBRARY)
|
# tdstrip -s $<
uusub.com: uupc.cfg $(UUSUBOBJ) $(LIBRARIES)
- erase uusub.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(UUSUBOBJ)
$<
nul
$(LIBRARY)
|
uusub.exe: uupc.cfg $(UUSUBOBJ) $(LIBRARIES)
- erase uusub.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUSUBOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uuxqt.exe: uupc.cfg $(UUXQTOBJ) $(LIBRARIES)
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUXQTOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uustat.com: uupc.cfg $(UUSTATOBJ) $(LIBRARIES)
- erase uustat.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(UUSTATOBJ)
$<
nul
$(LIBRARY)
|
uustat.exe: uupc.cfg $(UUSTATOBJ) $(LIBRARIES)
- erase uustat.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUSTATOBJ)
$<
nul
$(LIBRARY)
|
# tdstrip -s $<
uux.com: uupc.cfg $(UUXOBJ) $(LIBRARIES)
- erase uux.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(UUXOBJ)
$<
nul
$(LIBRARY)
|
uux.exe: uupc.cfg $(UUXOBJ) $(LIBRARIES)
- erase uux.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUXOBJ)
$<
nul
$(LIBRARY)
|
# tdstrip -s $<
rnews.com: uupc.cfg $(RNEWSOBJ)
- erase rnews.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(RNEWSOBJ)
$<
nul
$(LIBRARY)
|
rnews.exe: uupc.cfg $(RNEWSOBJ)
- erase rnews.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(RNEWSOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uucico.exe: uupc.cfg $(UUCICOOBJ) $(LIBRARIES)
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUCICOOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uucicof.exe: uupc.cfg $(UUCICOOBJF) $(LIBRARIES)
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUCICOOBJF)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
uupoll.com: uupc.cfg $(UUPOLLOBJ)
- erase uupoll.exe
$(LINKER) $(LINKOPTT) @&&|
$(STARTUPT)+
$(UUPOLLOBJ)
$<
nul
$(LIBRARY)
|
uupoll.exe: uupc.cfg $(UUPOLLOBJ)
- erase uupoll.com
$(LINKER) $(LINKOPT) @&&|
$(STARTUP)+
$(UUPOLLOBJ)
$<
nul
$(LIBRARY)
|
tdstrip -s $<
novrstrk.obj: $(UTIL)\novrstrk.c
$(CC) -c -mt -v- -e$< $(CCX) $(UTIL)\novrstrk.c
novrstrk.com: uupc.cfg novrstrk.obj
fmt.obj: $(UTIL)\fmt.c
$(CC) -c -mt -v- -e$< $(CCX) $(UTIL)\fmt.c
gensig.obj: $(UTIL)\gensig.c
$(CC) -c -mt -v- -e$< $(CCX) $(UTIL)\gensig.c
fmt.com: uupc.cfg fmt.obj $(TIMESTMP)
gensig.com: uupc.cfg gensig.obj $(TIMESTMP)
$(BUGSLST): $(BUGSDOC)
$(CHNGLST): $(CHNGDOC)
$(CMDSLST): $(CMDSDOC)
$(INSTLST): $(INSTDOC)
$(MAILLST): $(MAILDOC)
$(READLST): $(READDOC)
$(STATLST): $(STATDOC)
$(TILDLST): $(TILDDOC)
$(FILELST): $(DOC)\files.scr
scr $(DOC)\$& $< ( DEV=$(SDEVLST) $(SCROPT)
# *--------------------------------------------------------------------*
# * Force a regeneration of the time stamp/version module. *
# *--------------------------------------------------------------------*
regen: $(LIB)\timestmp.c
- erase $(TIMESTMP)
# *--------------------------------------------------------------------*
# * The timestamp module has a reference to this MAKEFILE, *
# * which insures whenever we change the version number the *
# * time stamp gets re-generated. *
# *--------------------------------------------------------------------*
$(TIMESTMP): $(LIB)\timestmp.c uupc.cfg $(REGEN)
# *--------------------------------------------------------------------*
# * Common library build *
# *--------------------------------------------------------------------*
$(LIBRARY2): $(LIBLIST)
erase $<
TLIB /C /E $< @&&|
$(LIBLST1)
nul
|
TLIB /C /E $< @&&|
$(LIBLST2)
nul
|
TLIB /C /E $< @&&|
$(LIBLST3)
nul
|
# *--------------------------------------------------------------------*
# * *Compiler Configuration File* *
# *--------------------------------------------------------------------*
uupc.cfg: $(MAKEFILE)
copy &&|
-d
-DUUPCV="$(VERS)"
-f
-G-
-I$(LIB)
-I$(BORLANDC)\INCLUDE
-L$(BLIB)
-m$(MODEL)
-N
-O
-P-.C
-r
-v
-Z
-wpro
-wdcl
-weas
-will
-wpin
-wrvl
-wamb
-wamp
-wnod
-wstv
-wuse
-wsig
-wucp
| $<